﻿Imports System.Resources
Imports System.Threading
Imports Biz
Imports BLL


Public Class ctrlCambiarContraseña

    Private _llamador As frmMainMetro
    Private _oPassword As cPassword
    Private _oUsuario As cUsuario
    Private _RM As ResourceManager


    Public Sub SetIdioma()

        _RM = New ResourceManager("UI.Idiomas", System.Reflection.Assembly.GetExecutingAssembly)

        btnAceptar.Text = _RM.GetString("btnAceptar")
        btnCancelar.Text = _RM.GetString("btnCancelar")

        lblIngresePassActual.Text = _RM.GetString("strIngreseContraseñaActual") + ":"
        lblIngresePassNueva.Text = _RM.GetString("strIngreseContraseñaNueva") + ":"
        lblRepitaPassNueva.Text = _RM.GetString("strRepitaContraseñaNueva") + ":"

        lblTituloForm.Text = _RM.GetString("strCambioPass")

    End Sub


    Public Property Llamador() As frmMainMetro
        Get
            Return _llamador
        End Get
        Set(value As frmMainMetro)
            _llamador = value
        End Set
    End Property

    Private Sub btnCancelar_Click(sender As Object, e As EventArgs) Handles btnCancelar.Click
        _llamador.CloseModalPanel(Me, DevComponents.DotNetBar.Controls.eSlideSide.Left)
    End Sub

    Private Function ValidarForm() As Boolean
        Dim bValido As Boolean = True
        Dim oAux As cPassword = New cPassword


        If txtPassActual.Text.Trim = "" Then bValido = False
        If txtPassNueva.Text.Trim = "" Then bValido = False
        If txtPassNuevaRepeticion.Text.Trim = "" Then bValido = False

        If bValido = False Then
            lblMensajes.Text = "Complete todos los datos requeridos..."
        End If

        If bValido Then
            oAux.Usu_Legajo = _oUsuario.Usu_Legajo

            Try
                oAux = GestorPassword.Instance.Buscar_Ultimo(oAux)

            Catch ex As Excepciones.PasswordFalloBuscarPorUsuario
                Main.ManejarExcepcion(ex)
            Catch ex As Exception
                Main.ManejarExcepcion(ex)
            End Try

            If Utils.Encriptador.Encriptar(txtPassActual.Text) <> oAux.Pwd_Password Then
                bValido = False

                lblMensajes.Text = "La contraseña ingresada no coincide con la contraseña actual del usuario"
            End If
        End If

        If bValido Then
            If txtPassNueva.Text.Trim <> txtPassNuevaRepeticion.Text.Trim Then
                bValido = False

                lblMensajes.Text = "La nueva contraseña y su repetición no coinciden."
            End If
        End If

        ValidarForm = bValido

    End Function

    Private Sub btnAceptar_Click(sender As Object, e As EventArgs) Handles btnAceptar.Click
        Dim oAux As cPassword


        If ValidarForm() Then
            oAux = New cPassword
            oAux.Usu_Legajo = _oUsuario.Usu_Legajo
            oAux.Pwd_Password = Utils.Encriptador.Encriptar(txtPassNueva.Text)

            Try
                GestorPassword.Instance.Ingresar(oAux)
                GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.SegUsuarioCambioPass))

            Catch ex As Excepciones.PasswordFalloAlta
                Main.ManejarExcepcion(ex)
            Catch ex As Exception
                Main.ManejarExcepcion(ex)
            End Try

            _llamador.CloseModalPanel(Me, DevComponents.DotNetBar.Controls.eSlideSide.Left)
            _llamador.RefrescarGrillas()
        End If

    End Sub

    Public Sub MostrarParaAlta(oUsuario As cUsuario)

        lblMensajes.Text = ""

        _oPassword = Nothing
        _oUsuario = oUsuario

        LlenarForm()

        txtPassActual.Focus()

    End Sub

    Private Sub LlenarForm()

        txtPassActual.Text = ""
        txtPassNueva.Text = ""
        txtPassNuevaRepeticion.Text = ""

    End Sub

End Class
